var obj = {}

// 1、toString（推荐）因为每个数据类型都有tostring方法
Object.prototype.toString.call(obj) === '[object Object]'
let b1 = Object.prototype.toString.call(obj) === '[object Object]'
console.log(b1);
// 2、constructor

let b2 = obj.constructor === Object
console.log(b2);
// 3、instanceof 需要注意的是由于数组也是对象，因此用 arr instanceof Object 也为true。

obj instanceof Object
let b3 = obj instanceof Object
console.log(b3);
// 4、typeof

obj.__proto__ === Object.prototype
let b4 = obj.__proto__ === Object.prototype
console.log(b4);

// 根据typeof判断对象也不太准确
// 表达式	                      返回值
// typeof undefined	       'undefined'
// typeof null	               'object'
// typeof true	               'boolean'
// typeof 123	               'number'
// typeof "abc"	           'string'
// typeof function() {}	   'function'
// typeof {}	               'object'
// typeof []	               'object'
// 5
let b5 = typeof [] === Object
console.log(b5);